package com.yuliang;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yuliang.dao.UserDao;
import com.yuliang.entity.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class Start {
    public static void main(String[] args) throws IOException {
        //定义mybatis配置文件的路径
        String resource = "mybatis-config.xml";
        //通过 Resources 类加载 MyBatis 配置文件，将其转换为输入流。
        InputStream inputStream = Resources.getResourceAsStream(resource);
        //使用 SqlSessionFactoryBuilder 构建 SqlSessionFactory 对象，
        //SqlSessionFactory 是 MyBatis 的关键接口，用于创建 SqlSession 对象。
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //获取Sqlsession对象,SqlSession 提供了在数据库中执行 SQL 命令的方法。
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //获取UserDao实现类对象
        UserDao userDao = sqlSession.getMapper(UserDao.class);
        //调用方法测试
        PageHelper.startPage(1,2);
        List<User> list = userDao.getAll();
        System.out.println("分页 （1，1） userDao.getAll() = " +list);
        PageInfo<User> pageInfo = new PageInfo<User>(list);
        System.out.println("总数："+pageInfo.getTotal());
        System.out.println("总页数："+pageInfo.getPages());
        System.out.println(pageInfo);
        //String addr = userDao.getAddr(1);

        //System.out.println("userDao.getUserById(2) = " + userDao.getUserById(2));
        //System.out.println("1住在"+addr);
        //System.out.println(userList);


        //释放资源
        sqlSession.close();
    }
}
